home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / pcboard / dwnld30b.zip / DWNLD.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-07-13  |  15KB  |  815 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Date     DATE001
  20.     Date     DATE002
  21.     Date     DATE003
  22.     Integer  INTEGER001
  23.     Integer  INTEGER002
  24.     Integer  INTEGER003
  25.     Integer  INTEGER004
  26.     Integer  INTEGER005
  27.     Integer  INTEGER006
  28.     Integer  INTEGER007
  29.     Integer  INTEGER008
  30.     Integer  INTEGER009
  31.     Integer  INTEGER010
  32.     Integer  INTEGER011
  33.     Integer  INTEGER012
  34.     Integer  INTEGER013
  35.     Integer  INTEGER014
  36.     Integer  INTEGER015
  37.     Integer  INTEGER016
  38.     Integer  INTEGER017
  39.     Integer  INTEGER018
  40.     Integer  INTEGER019
  41.     Integer  INTEGER020
  42.     Integer  INTEGER021
  43.     Integer  INTEGER022
  44.     Integer  INTEGER023
  45.     Integer  INTEGER024
  46.     Integer  INTEGER025
  47.     Integer  INTEGER026
  48.     Integer  INTEGER027
  49.     Integer  INTEGER028
  50.     Integer  INTEGER029
  51.     Integer  INTEGER030
  52.     String   STRING001
  53.     String   STRING002
  54.     String   STRING003
  55.     String   STRING004
  56.     String   STRING005
  57.     String   STRING006
  58.     String   STRING007
  59.     String   STRING008
  60.     String   STRING009
  61.     String   STRING010
  62.     String   STRING011
  63.     String   STRING012
  64.     String   STRING013
  65.     String   STRING014
  66.     String   STRING015
  67.     String   STRING016
  68.     String   STRING017
  69.     String   STRING018
  70.     String   STRING019
  71.     String   STRING020
  72.     String   STRING021
  73.     String   STRING022
  74.     String   STRING023
  75.     String   STRING024
  76.     String   STRING025
  77.     String   STRING026
  78.     String   STRING027
  79.     String   STRING028
  80.     String   STRING029
  81.     String   STRING030
  82.     String   STRING031
  83.     String   STRING032
  84.     String   STRING033
  85.     String   STRING034
  86.     String   STRING035
  87.     String   STRING036
  88.     String   STRING037
  89.     String   STRING038
  90.     String   STRING039
  91.     String   STRING040
  92.     String   STRING041
  93.     String   STRING042
  94.     String   STRING043
  95.     String   STRING044
  96.     String   STRING045
  97.     String   STRING046
  98.     String   STRING047
  99.     String   STRING048
  100.     String   STRING049
  101.     String   STRING050
  102.     String   STRING051
  103.     String   STRING052
  104.     String   STRING053
  105.     String   STRING054
  106.     String   STRING055
  107.     String   STRING056
  108.     String   STRING057
  109.     String   STRING058
  110.     String   STRING059
  111.     String   STRING060
  112.     String   STRING061
  113.     String   STRING062
  114.     String   STRING063
  115.     String   STRING064
  116.  
  117. ;------------------------------------------------------------------------------
  118.  
  119.     INTEGER001 = 0
  120.     If (Exist(PPEPath() + PPEName() + LangExt())) Then
  121.         STRING002 = PPEPath() + PPEName() + LangExt()
  122.     Else
  123.         STRING002 = PPEPath() + PPEName() + ".CFG"
  124.         INTEGER001 = 1
  125.     Endif
  126.     If (AnsiOn()) Goto LABEL001
  127.     STRING001 = ReadLine(STRING002, 1)
  128.     Print STRING001
  129.     Goto LABEL014
  130.     :LABEL001
  131.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "Using: DWNLD.PPE", " "
  132.     If (PcbNode() == 0) Then
  133.         STRING005 = GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\FLIST."
  134.     Else
  135.         STRING005 = GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\FLIST." + String(PcbNode())
  136.     Endif
  137.     STRING008 = GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\FLIST.TMP"
  138.     STRING013 = "                                         "
  139.     INTEGER013 = 0
  140.     INTEGER006 = 0
  141.     INTEGER030 = 0
  142.     INTEGER009 = 0
  143.     INTEGER010 = 0
  144.     INTEGER011 = 0
  145.     INTEGER023 = 0
  146.     STRING003 = 1
  147.     INTEGER016 = 10000
  148.     INTEGER017 = 100
  149.     INTEGER014 = 16
  150.     INTEGER015 = 2
  151.     INTEGER003 = 1
  152.     STRING029 = "@X0F"
  153.     STRING027 = "@X0F"
  154.     STRING030 = "@X0F"
  155.     STRING031 = "@X0F"
  156.     STRING032 = "@X0F"
  157.     STRING033 = "@X0F"
  158.     STRING034 = "@X0F"
  159.     If (INTEGER001 == 0) Then
  160.         STRING026 = NoChar()
  161.         STRING025 = YesChar()
  162.     Else
  163.         STRING025 = "Y"
  164.         STRING026 = "N"
  165.     Endif
  166.     DATE002 = FileInf(STRING005, 2)
  167.     INTEGER018 = Month(FileInf(STRING005, 2)) * INTEGER017 + Day(FileInf(STRING005, 2))
  168.     STRING009 = FileInf(STRING005, 3)
  169.     INTEGER019 = Hour(STRING009) * INTEGER016 + Min(STRING009) * INTEGER017 + Sec(STRING009)
  170.     STRING001 = Trim(STRING001, Chr(32))
  171.     FOpen 2, STRING002, 0, 0
  172.     FGet 2, STRING019
  173.     FGet 2, STRING019
  174.     STRING019 = Upper(STRING019)
  175.     If (STRING019 == STRING025) Then
  176.         INTEGER015 = INTEGER015 + 1
  177.         FGet 2, STRING035
  178.         If (Left(STRING035, 2) == "@X") STRING029 = Left(STRING035, 4)
  179.     Else
  180.         INTEGER014 = INTEGER014 + 4
  181.     Endif
  182.     FGet 2, STRING041
  183.     If (Left(STRING041, 2) == "@X") STRING027 = Left(STRING041, 4)
  184.     FGet 2, STRING020
  185.     STRING020 = Upper(STRING020)
  186.     If (STRING020 == STRING025) Then
  187.         INTEGER015 = INTEGER015 + 1
  188.         FGet 2, STRING036
  189.         If (Left(STRING036, 2) == "@X") STRING030 = Left(STRING036, 4)
  190.         STRING047 = (10 - Len(StripAtx(STRING036))) / 2
  191.     Else
  192.         INTEGER014 = INTEGER014 + 10
  193.     Endif
  194.     FGet 2, STRING021
  195.     STRING021 = Upper(STRING021)
  196.     If (STRING021 == STRING025) Then
  197.         INTEGER015 = INTEGER015 + 1
  198.         FGet 2, STRING037
  199.         If (Left(STRING037, 2) == "@X") STRING031 = Left(STRING037, 4)
  200.         STRING048 = (8 - Len(StripAtx(STRING037))) / 2
  201.     Else
  202.         INTEGER014 = INTEGER014 + 8
  203.     Endif
  204.     FGet 2, STRING022
  205.     STRING022 = Upper(STRING022)
  206.     If (STRING022 == STRING025) Then
  207.         INTEGER015 = INTEGER015 + 1
  208.         FGet 2, STRING038
  209.         If (Left(STRING038, 2) == "@X") STRING032 = Left(STRING038, 4)
  210.         STRING049 = (15 - Len(StripAtx(STRING038))) / 2
  211.     Else
  212.         INTEGER014 = INTEGER014 + 15
  213.     Endif
  214.     FGet 2, STRING023
  215.     STRING023 = Upper(STRING023)
  216.     If (STRING023 == STRING025) Then
  217.         INTEGER015 = INTEGER015 + 1
  218.         FGet 2, STRING039
  219.         If (Left(STRING039, 2) == "@X") STRING033 = Left(STRING039, 4)
  220.         STRING050 = (4 - Len(StripAtx(STRING039))) / 2
  221.     Else
  222.         INTEGER014 = INTEGER014 + 4
  223.     Endif
  224.     FGet 2, STRING024
  225.     STRING024 = Upper(STRING024)
  226.     If (STRING024 == STRING025) Then
  227.         INTEGER015 = INTEGER015 + 1
  228.         FGet 2, STRING040
  229.         If (Left(STRING040, 2) == "@X") STRING034 = Left(STRING040, 4)
  230.         STRING051 = (6 - Len(StripAtx(STRING040))) / 2
  231.     Else
  232.         INTEGER014 = INTEGER014 + 7
  233.     Endif
  234.     INTEGER014 = INTEGER014 / INTEGER015
  235.     STRING018 = Left(STRING013, INTEGER014)
  236.     FGet 2, STRING042
  237.     FGet 2, STRING043
  238.     FGet 2, STRING044
  239.     FGet 2, STRING015
  240.     FGet 2, STRING016
  241.     FGet 2, STRING017
  242.     FGet 2, STRING011
  243.     FGet 2, STRING012
  244.     FGet 2, STRING028
  245.     FGet 2, STRING056
  246.     FGet 2, STRING060
  247.     FGet 2, STRING062
  248.     FGet 2, STRING061
  249.     FGet 2, STRING063
  250.     FGet 2, STRING014
  251.     FGet 2, STRING058
  252.     FGet 2, STRING059
  253.     FClose 2
  254.     If (Exist(STRING008)) Then
  255.         DATE003 = FileInf(STRING008, 2)
  256.         INTEGER020 = Month(DATE003) * INTEGER017 + Day(DATE003)
  257.         If (INTEGER020 < INTEGER018) Goto LABEL002
  258.         STRING010 = FileInf(STRING008, 3)
  259.         INTEGER021 = Hour(STRING010) * INTEGER016 + Min(STRING010) * INTEGER017 + Sec(STRING010)
  260.         If (INTEGER021 < INTEGER019) Goto LABEL002
  261.         FOpen 2, STRING008, 0, 0
  262.         FGet 2, INTEGER009
  263.         FClose 2
  264.     Else
  265.         Goto LABEL002
  266.     Endif
  267.     If (INTEGER009 > FlagCnt()) Then
  268.         Delete STRING008
  269.     Else
  270.         If (INTEGER009 == FlagCnt()) Wait
  271.     Endif
  272.     :LABEL002
  273.     INTEGER009 = 0
  274.     FOpen 2, STRING008, 1, 0
  275.     FPut 2, FlagCnt()
  276.     FClose 2
  277.     INTEGER025 = FlagCnt()
  278.     FOpen 1, STRING005, 2, 0
  279.     FDefIn 1
  280.     :LABEL003
  281.     Color 15
  282.     INTEGER030 = 0
  283.     AnsiPos 1, 5
  284.     STRING001 = ScrText(3, 18, 1, 0)
  285.     If (STRING001 == "└") Then
  286.         INTEGER022 = 1
  287.         AnsiPos 1, 5
  288.         Goto LABEL004
  289.     Else
  290.         INTEGER022 = 0
  291.     Endif
  292.     If (GrafMode() == "R") Then
  293.         PrintLn " "
  294.         PrintLn "!|1K|*"
  295.     Endif
  296.     PrintLn "@CLS@@POFF@" + STRING015 + "  ┌──────────────────────────────────────────────────────────────────────────┐"
  297.     STRING001 = StripAtx(STRING011)
  298.     PrintLn "  │" + Left(STRING013, 37 - Len(STRING001) / 2) + STRING011 + Right(STRING013, 37 - Len(STRING001) / 2) + STRING015 + "│"
  299.     Print "  │" + STRING016
  300.     If (STRING019 == STRING025) Print STRING018 + STRING029 + STRING035
  301.     Print STRING018 + Left(STRING013, (12 - Len(StripAtx(STRING041))) / 2) + STRING027 + STRING041 + Left(STRING013, (12 - Len(StripAtx(STRING041))) / 2) + STRING018
  302.     If (STRING020 == STRING025) Print Left(STRING013, STRING047) + STRING030 + STRING036 + Left(STRING013, 10 - STRING047 - Len(StripAtx(STRING036))) + STRING018
  303.     If (STRING021 == STRING025) Print Left(STRING013, STRING048) + STRING031 + STRING037 + Left(STRING013, 8 - STRING048 - Len(StripAtx(STRING037))) + STRING018
  304.     If (STRING022 == STRING025) Print Left(STRING013, STRING049) + STRING032 + STRING038 + Left(STRING013, 15 - STRING049 - Len(StripAtx(STRING038))) + STRING018
  305.     If (STRING023 == STRING025) Print Left(STRING013, STRING050) + STRING033 + STRING039 + Left(STRING013, 4 - STRING050 - Len(StripAtx(STRING039))) + STRING018
  306.     If (STRING024 == STRING025) Print Left(STRING013, STRING051) + STRING034 + STRING040
  307.     AnsiPos 78, 3
  308.     PrintLn STRING015 + "│"
  309.     Print "  │" + STRING017
  310.     If (STRING019 == STRING025) Print Left(STRING013, INTEGER014 - 1) + "────"
  311.     Print STRING018 + "────────────" + STRING018
  312.     If (STRING020 == STRING025) Print "──────────" + STRING018
  313.     If (STRING021 == STRING025) Print "────────" + STRING018
  314.     If (STRING022 == STRING025) Print "───────────────" + STRING018
  315.     If (STRING023 == STRING025) Print "────" + STRING018
  316.     If (STRING024 == STRING025) Print "───────"
  317.     AnsiPos 78, 4
  318.     PrintLn STRING015 + "│"
  319.     :LABEL004
  320.     FSeek 1, 0, 0
  321.     INTEGER002 = INTEGER025 + 1
  322.     If (INTEGER002 > 10) Then
  323.         For INTEGER003 = 1 To INTEGER002 - 10
  324.             FSeek 1, 83, 1
  325.             FDRead STRING001, 1
  326.             If (Asc(STRING001) <> 0) INTEGER009 = Asc(STRING001)
  327.             FDRead STRING001, 1
  328.             If (Asc(STRING001) <> 0) INTEGER010 = 256 * Asc(STRING001)
  329.             FDRead STRING001, 1
  330.             If (Asc(STRING001) <> 0) INTEGER011 = 65536 * Asc(STRING001)
  331.             INTEGER006 = INTEGER006 + INTEGER009 + INTEGER010 + INTEGER011
  332.             FSeek 1, 43, 1
  333.         Next
  334.     Else
  335.         INTEGER002 = 10
  336.     Endif
  337.     STRING003 = INTEGER002 - 9
  338.     For INTEGER003 = 1 To INTEGER002
  339.         Gosub LABEL026
  340.         If (INTEGER030 == 1) Break
  341.     Next
  342.     INTEGER013 = STRING003 - 1
  343.     For INTEGER003 = INTEGER003 To 10
  344.         Gosub LABEL029
  345.     Next
  346.     PrintLn "  │                                                                          │"
  347.     STRING001 = StripAtx(STRING012)
  348.     PrintLn "  │" + Left(STRING013, 37 - Len(STRING001) / 2) + STRING012 + Right(STRING013, 37 - Len(STRING001) / 2) + "│"
  349.     Print "  │  " + STRING044 + ": @FFILES:3@" + Left(STRING013, 12 - Len(StripAtx(STRING044)))
  350.     If (STRING020 == STRING025) Print Left(STRING013, 10 - Len(StripAtx(STRING036))) + STRING036 + ": @FBYTES:12@"
  351.     If (STRING022 == STRING025) Then
  352.         Print Left(STRING013, 9 - Len(StripAtx(STRING038))) + STRING038 + ": "
  353.         INTEGER004 = INTEGER006 / 60
  354.         INTEGER005 = INTEGER006 - INTEGER004 * 60
  355.         Print String(INTEGER004) + Left(STRING013, 4 - Len(StripAtx(STRING042))) + STRING042 + " " + STRING032 + String(INTEGER005) + Left(STRING013, 4 - Len(StripAtx(STRING043))) + STRING043 + " "
  356.     Endif
  357.     AnsiPos 78, 17
  358.     PrintLn STRING015 + "│"
  359.     If (INTEGER022) Then
  360.         PrintLn 
  361.     Else
  362.         PrintLn "  └──────────────────────────────────────────────────────────────────────────┘"
  363.     Endif
  364.     :LABEL005
  365.     PrintLn Left(STRING013, (79 - Len(StripAtx(STRING028))) / 2) + STRING028 + Left(STRING013, (79 - Len(StripAtx(STRING028))) / 2)
  366.     ClrEol
  367.     PrintLn 
  368.     ClrEol
  369.     PrintLn 
  370.     ClrEol
  371.     If (INTEGER013 > 9) INTEGER013 = 9
  372.     If (STRING019 == STRING025) INTEGER023 = 3 + INTEGER014
  373.     AnsiPos 4 + INTEGER014 + INTEGER023, 5 + INTEGER013
  374.     Print "             "
  375.     AnsiPos 4 + INTEGER014 + INTEGER023, 5 + INTEGER013
  376.     STRING004 = ""
  377.     STRING052 = ""
  378.     INTEGER026 = 0
  379.     While (STRING052 <> Chr(13)) Do
  380.         INTEGER024 = INTEGER025
  381.         STRING052 = Inkey()
  382.         If (STRING052 == "") Continue
  383.         If (STRING052 == Chr(13)) Break
  384.         If ((INTEGER026 == 12) && (STRING052 <> Chr(8))) Continue
  385.         If ((STRING052 == "RIGHT") || (STRING052 == "UP")) Then
  386.             AnsiPos 1, 19
  387.             Print Left(STRING013, (78 - Len(StripAtx(STRING056))) / 2) + STRING056 + Left(STRING013, (78 - Len(StripAtx(STRING056))) / 2)
  388.             AnsiPos 4 + INTEGER014 + INTEGER023, 5 + INTEGER013
  389.             :LABEL006
  390.             INTEGER027 = GetX()
  391.             INTEGER028 = GetY() - 1
  392.             If (INTEGER028 < 5) Then
  393.                 AnsiPos 1, INTEGER028 + 1
  394.                 INTEGER028 = 5
  395.                 If (INTEGER024 > 0) Then
  396.                     FSeek 1, 0, 0
  397.                     For INTEGER003 = 1 To INTEGER024 - 1
  398.                         FSeek 1, 129, 1
  399.                     Next
  400.                     STRING003 = INTEGER024
  401.                     For INTEGER003 = 1 To 10
  402.                         Gosub LABEL026
  403.                     Next
  404.                     Goto LABEL007
  405.                 Endif
  406.                 Inc INTEGER024
  407.             Endif
  408.             :LABEL007
  409.             Dec INTEGER024
  410.             AnsiPos INTEGER027, INTEGER028
  411.             Color 112
  412.             STRING052 = ScrText(INTEGER027, INTEGER028, 12, 0)
  413.             STRING052 = Trim(STRING052, Chr(32))
  414.             Print Left(STRING013, 12 - Len(STRING052)) + STRING052
  415.             AnsiPos INTEGER027, INTEGER028
  416.             :LABEL008
  417.             STRING057 = Inkey()
  418.             If (Upper(STRING057) == STRING061) Goto LABEL024
  419.             If (Upper(STRING057) == STRING062) Goto LABEL015
  420.             If (Upper(STRING057) == STRING060) Goto LABEL019
  421.             If (Upper(STRING057) == STRING063) Goto LABEL003
  422.             If (((STRING057 == "DOWN") || (STRING057 == "LEFT")) && (INTEGER028 < 4 + INTEGER013)) Then
  423.                 Print STRING027 + Left(STRING013, 12 - Len(STRING052)) + STRING052
  424.                 AnsiPos INTEGER027, INTEGER028
  425.                 Goto LABEL009
  426.             Endif
  427.             If ((STRING057 == "RIGHT") || (STRING057 == "UP")) Then
  428.                 Print STRING027 + Left(STRING013, 12 - Len(STRING052)) + STRING052
  429.                 AnsiPos INTEGER027, INTEGER028
  430.                 Goto LABEL006
  431.             Endif
  432.             Goto LABEL008
  433.         Endif
  434.         If ((STRING052 == "LEFT") || (STRING052 == "DOWN")) Then
  435.             AnsiPos 1, 19
  436.             Print Left(STRING013, (78 - Len(StripAtx(STRING056))) / 2) + STRING056 + Left(STRING013, (78 - Len(StripAtx(STRING056))) / 2)
  437.             AnsiPos 4 + INTEGER014 + INTEGER023, 5 + INTEGER013
  438.             :LABEL009
  439.             INTEGER027 = GetX()
  440.             INTEGER028 = GetY() + 1
  441.             Inc INTEGER024
  442.             If (INTEGER028 > 5 + INTEGER013) Then
  443.                 INTEGER028 = INTEGER028 - 1
  444.                 If ((INTEGER024 > 0) && (INTEGER024 < INTEGER025)) Then
  445.                     AnsiPos 1, 5
  446.                     FSeek 1, 0, 0
  447.                     For INTEGER003 = 1 To INTEGER024 - 9
  448.                         FSeek 1, 129, 1
  449.                     Next
  450.                     STRING003 = INTEGER024 - 8
  451.                     For INTEGER003 = 1 To 10
  452.                         Gosub LABEL026
  453.                     Next
  454.                     Goto LABEL010
  455.                 Endif
  456.                 Dec INTEGER024
  457.             Endif
  458.             :LABEL010
  459.             AnsiPos INTEGER027, INTEGER028
  460.             STRING052 = ScrText(INTEGER027, INTEGER028, 12, 0)
  461.             STRING052 = Trim(STRING052, Chr(32))
  462.             Color 112
  463.             Print Left(STRING013, 12 - Len(STRING052)) + STRING052
  464.             AnsiPos INTEGER027, INTEGER028
  465.             :LABEL011
  466.             STRING045 = Inkey()
  467.             If (Upper(STRING045) == STRING061) Goto LABEL024
  468.             If (Upper(STRING045) == STRING062) Goto LABEL015
  469.             If (Upper(STRING045) == STRING060) Goto LABEL019
  470.             If (Upper(STRING045) == STRING063) Goto LABEL003
  471.             If ((STRING045 == "RIGHT") || (STRING045 == "UP")) Then
  472.                 Print STRING027 + Left(STRING013, 12 - Len(STRING052)) + STRING052
  473.                 AnsiPos INTEGER027, INTEGER028
  474.                 Goto LABEL006
  475.             Endif
  476.             If ((STRING045 == "DOWN") || (STRING045 == "LEFT")) Then
  477.                 Print STRING027 + Left(STRING013, 12 - Len(STRING052)) + STRING052
  478.                 AnsiPos INTEGER027, INTEGER028
  479.                 Goto LABEL009
  480.             Endif
  481.             Goto LABEL011
  482.         Endif
  483.         If (STRING052 == Chr(8)) Then
  484.             Dec INTEGER026
  485.             If (INTEGER026 < 0) Then
  486.                 INTEGER026 = 0
  487.                 Continue
  488.             Endif
  489.             STRING004 = Left(STRING004, INTEGER026)
  490.             Print STRING052 + " " + STRING052
  491.             Continue
  492.         Endif
  493.         Inc INTEGER026
  494.         STRING004 = STRING004 + STRING052
  495.         Print STRING052
  496.         :LABEL012
  497.     EndWhile
  498.     AnsiPos 1, 19
  499.     ClrEol
  500.     STRING004 = Trim(STRING004, Chr(32))
  501.     If (Len(STRING004) == 0) STRING004 = Chr(13)
  502.     :LABEL013
  503.     FClose 1
  504.     KbdStuff STRING004
  505.     :LABEL014
  506.     End
  507.     :LABEL015
  508.     Color 15
  509.     INTEGER027 = GetX()
  510.     INTEGER028 = GetY()
  511.     STRING052 = ScrText(INTEGER027, INTEGER028, 12, 0)
  512.     STRING052 = Trim(STRING052, Chr(32))
  513.     AnsiPos 1, 19
  514.     Print Left(STRING013, (78 - Len(StripAtx(STRING014))) / 2) + STRING014 + Left(STRING013, (78 - Len(StripAtx(STRING014))) / 2)
  515.     FSeek 1, 0, 0
  516.     For INTEGER003 = 1 To 100000
  517.         FSeek 1, 66, 1
  518.         FDRead STRING004, 13
  519.         If (STRING004 == STRING052) Goto LABEL016
  520.         If (Ferr(1)) Break
  521.         FSeek 1, 50, 1
  522.     Next
  523.     Print STRING027 + Left(STRING013, 12 - Len(STRING052)) + STRING052
  524.     AnsiPos 1, 19
  525.     Print Left(STRING013, (79 - Len(StripAtx(STRING028))) / 2) + STRING028 + Left(STRING013, (79 - Len(StripAtx(STRING028))) / 2)
  526.     AnsiPos 4 + INTEGER014 + INTEGER023, 5 + INTEGER013
  527.     Goto LABEL012
  528.     :LABEL016
  529.     INTEGER029 = (INTEGER003 - 1) * 129 + 1
  530.     FSeek 1, INTEGER029 + 128, 0
  531.     :LABEL017
  532.     If (Ferr(1)) Goto LABEL018
  533.     FRead 1, STRING046, 1
  534.     If (Ferr(1)) Goto LABEL018
  535.     FSeek 1, -130, 1
  536.     FWrite 1, STRING046, 1
  537.     FSeek 1, 129, 1
  538.     Goto LABEL017
  539.     :LABEL018
  540.     FSeek 1, -129, 1
  541.     For INTEGER003 = 1 To 129
  542.         FWrite 1, "", 1
  543.     Next
  544.     FFlush 1
  545.     Goto LABEL003
  546.     :LABEL019
  547.     Color 15
  548.     INTEGER027 = GetX()
  549.     INTEGER028 = GetY()
  550.     STRING052 = ScrText(INTEGER027, INTEGER028, 12, 0)
  551.     STRING052 = Trim(STRING052, Chr(32))
  552.     If (Len(STRING052) == 0) Goto LABEL003
  553.     FSeek 1, 0, 0
  554.     :LABEL020
  555.     If (Ferr(1)) Goto LABEL021
  556.     FSeek 1, 66, 1
  557.     FRead 1, STRING004, 13
  558.     If (STRING004 == STRING052) Goto LABEL021
  559.     FSeek 1, 50, 1
  560.     Goto LABEL020
  561.     :LABEL021
  562.     FSeek 1, -79, 1
  563.     FRead 1, STRING004, 65
  564.     STRING004 = Trim(STRING004, Chr(32))
  565.     Select Case (Upper(Right(STRING004, 3)))
  566.         Case "ZIP"
  567.             Shell 1, INTEGER003, STRING058, STRING004 + " -vbn >" + GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\FLIST.LST"
  568.             STRING064 = "Searching ZIP:"
  569.         Case "ARJ"
  570.             Shell 1, INTEGER003, STRING059, "l " + STRING004 + " >" + GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\FLIST.LST"
  571.             STRING064 = "Processing arc"
  572.     End Select
  573.     FOpen 3, GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\FLIST.LST", 0, 0
  574.     Cls
  575.     Print "@POFF@"
  576.     While (Left(STRING004, 14) <> STRING064) Do
  577.         FGet 3, STRING004
  578.         If (Ferr(3)) Then
  579.             FClose 3
  580.             Goto LABEL003
  581.         Endif
  582.     EndWhile
  583.     :LABEL022
  584.     If (Ferr(3)) Goto LABEL023
  585.     FGet 3, STRING004
  586.     PrintLn STRING004
  587.     Goto LABEL022
  588.     :LABEL023
  589.     FClose 3
  590.     Wait
  591.     Goto LABEL003
  592.     :LABEL024
  593.     Color 7
  594.     STRING053 = ReadLine(PCBDat(), 45)
  595.     Cls
  596.     FOpen 5, STRING053, 0, 0
  597.     :LABEL025
  598.     FGet 5, STRING054
  599.     If (Ferr(5)) Then
  600.         FClose 5
  601.         PromptStr 280, STRING004, 1, STRING055 + "Nn", 256
  602.         If (Trim(STRING004, Chr(32)) == "") STRING004 = "N"
  603.         Goto LABEL013
  604.     Endif
  605.     STRING055 = STRING055 + Left(STRING054, 1)
  606.     STRING055 = STRING055 + Lower(Left(STRING054, 1))
  607.     Print "(" + Left(STRING054, 1) + ") "
  608.     STRING054 = Right(STRING054, Len(STRING054) - InStr(STRING054, ","))
  609.     STRING054 = Right(STRING054, Len(STRING054) - InStr(STRING054, ","))
  610.     STRING054 = Right(STRING054, Len(STRING054) - InStr(STRING054, ","))
  611.     PrintLn Left(STRING054, InStr(STRING054, ",") - 1)
  612.     Goto LABEL025
  613.     :LABEL026
  614.     INTEGER009 = 0
  615.     INTEGER010 = 0
  616.     INTEGER011 = 0
  617.     FRead 1, STRING001, 66
  618.     If (Ferr(1) || (STRING001 == "")) Then
  619.         INTEGER030 = 1
  620.         Return
  621.     Endif
  622.     STRING001 = Trim(STRING001, Chr(32))
  623.     DATE001 = FileInf(STRING001, 2)
  624.     FDRead STRING004, 13
  625.     FDRead STRING001, 1
  626.     If (Asc(STRING001) <> 0) INTEGER009 = Asc(STRING001)
  627.     FDRead STRING001, 1
  628.     If (Asc(STRING001) <> 0) INTEGER010 = 256 * Asc(STRING001)
  629.     FDRead STRING001, 1
  630.     If (Asc(STRING001) <> 0) INTEGER011 = 65536 * Asc(STRING001)
  631.     INTEGER012 = INTEGER009 + INTEGER010 + INTEGER011
  632.     INTEGER009 = 0
  633.     INTEGER010 = 0
  634.     INTEGER011 = 0
  635.     FSeek 1, 1, 1
  636.     FDRead STRING001, 1
  637.     If (Asc(STRING001) <> 0) INTEGER009 = Asc(STRING001)
  638.     FDRead STRING001, 1
  639.     If (Asc(STRING001) <> 0) INTEGER010 = 256 * Asc(STRING001)
  640.     FDRead STRING001, 1
  641.     If (Asc(STRING001) <> 0) INTEGER011 = 65536 * Asc(STRING001)
  642.     INTEGER007 = INTEGER009 + INTEGER010 + INTEGER011
  643.     INTEGER006 = INTEGER006 + INTEGER007
  644.     FSeek 1, 9, 1
  645.     FDRead STRING007, 1
  646.     FDRead STRING006, 1
  647.     FSeek 1, 32, 1
  648.     INTEGER008 = INTEGER007 / 60
  649.     INTEGER007 = INTEGER007 - INTEGER008 * 60
  650.     Print STRING015 + "  │"
  651.     If (STRING019 == STRING025) Print STRING018 + STRING029 + Left(STRING013, 2 - Len(String(STRING003))) + String(STRING003) + " "
  652.     Print STRING018 + STRING027 + Left(STRING013, 12 - Len(STRING004)) + STRING004 + STRING018
  653.     If (STRING020 == STRING025) Print Left(STRING013, 10 - Len(String(INTEGER012))) + STRING030 + String(INTEGER012) + STRING018
  654.     If (STRING021 == STRING025) Print STRING031 + String(DATE001) + STRING018
  655.     If (STRING022 == STRING025) Print STRING032 + Left(STRING013, 4 - Len(String(INTEGER008))) + String(INTEGER008) + Left(STRING013, 4 - Len(StripAtx(STRING042))) + STRING042 + STRING032 + Left(STRING013, 3 - Len(String(INTEGER007))) + String(INTEGER007) + Left(STRING013, 4 - Len(StripAtx(STRING043))) + STRING043 + STRING018
  656.     If (STRING023 == STRING025) Then
  657.         If (Asc(STRING007) == 1) Then
  658.             Print STRING033 + "  " + STRING025
  659.             Goto LABEL027
  660.         Endif
  661.         Print STRING033 + "  " + STRING026
  662.         :LABEL027
  663.         Print STRING018
  664.     Endif
  665.     If (STRING024 == STRING025) Then
  666.         If (Asc(STRING006) == 1) Then
  667.             Print STRING034 + "    " + STRING025
  668.             Goto LABEL028
  669.         Endif
  670.         Print STRING034 + "    " + STRING026
  671.     Endif
  672.     :LABEL028
  673.     AnsiPos 78, 4 + INTEGER003
  674.     PrintLn STRING015 + "│"
  675.     AnsiPos 1, 5 + INTEGER003
  676.     Inc STRING003
  677.     Return
  678.     :LABEL029
  679.     Print STRING015 + "  │"
  680.     If (STRING019 == STRING025) Print STRING018 + STRING029 + Left(STRING013, 2 - Len(String(STRING003))) + String(STRING003) + " "
  681.     Print STRING018 + "            "
  682.     If (STRING020 == STRING025) Print STRING030 + STRING018 + "         0"
  683.     If (STRING021 == STRING025) Print STRING031 + STRING018 + "00-00-00"
  684.     If (STRING022 == STRING025) Print STRING032 + STRING018 + "   0" + Left(STRING013, 4 - Len(StripAtx(STRING042))) + STRING042 + STRING032 + "  0" + Left(STRING013, 4 - Len(StripAtx(STRING043))) + STRING043
  685.     AnsiPos 78, 4 + INTEGER003
  686.     PrintLn STRING015 + "│"
  687.     Inc STRING003
  688.     If (INTEGER022) Then
  689.         AnsiPos 1, 19
  690.         Goto LABEL005
  691.     Endif
  692.     Return
  693.  
  694. ;------------------------------------------------------------------------------
  695. ;
  696. ; Usage report (before postprocessing)
  697. ;
  698. ; ■ Statements used :
  699. ;
  700. ;    1       End
  701. ;    2       Cls
  702. ;    4       ClrEol
  703. ;    2       Wait
  704. ;    6       Color 
  705. ;    123     Goto 
  706. ;    175     Let 
  707. ;    54      Print 
  708. ;    18      PrintLn 
  709. ;    114     If 
  710. ;    6       FOpen 
  711. ;    7       FClose 
  712. ;    35      FGet 
  713. ;    1       FPut 
  714. ;    1       Delete 
  715. ;    4       Gosub 
  716. ;    3       Return
  717. ;    1       PromptStr 
  718. ;    5       Inc 
  719. ;    3       Dec 
  720. ;    2       Shell 
  721. ;    1       KbdStuff 
  722. ;    1       WrUNet 
  723. ;    29      AnsiPos 
  724. ;    21      FSeek 
  725. ;    1       FFlush 
  726. ;    4       FRead 
  727. ;    2       FWrite 
  728. ;    1       FDefIn 
  729. ;    13      FDRead 
  730. ;
  731. ;
  732. ; ■ Functions used :
  733. ;
  734. ;    3       -
  735. ;    15      *
  736. ;    24      /
  737. ;    230     +
  738. ;    70      -
  739. ;    78      ==
  740. ;    12      <>
  741. ;    15      <
  742. ;    9       <=
  743. ;    6       >
  744. ;    18      >=
  745. ;    53      !
  746. ;    21      &&
  747. ;    16      ||
  748. ;    52      Len(
  749. ;    1       Lower()
  750. ;    16      Upper()
  751. ;    67      Left()
  752. ;    7       Right()
  753. ;    8       Ferr()
  754. ;    14      Chr()
  755. ;    20      Asc()
  756. ;    4       InStr()
  757. ;    9       Trim()
  758. ;    2       Month()
  759. ;    2       Day()
  760. ;    2       Hour()
  761. ;    2       Min()
  762. ;    2       Sec()
  763. ;    1       NoChar()
  764. ;    1       YesChar()
  765. ;    32      StripAtx()
  766. ;    3       Inkey()
  767. ;    14      String()
  768. ;    1       PCBDat()
  769. ;    3       PPEPath()
  770. ;    3       PcbNode()
  771. ;    2       ReadLine()
  772. ;    1       UN_Name()
  773. ;    1       UN_City()
  774. ;    12      GetEnv()
  775. ;    2       Exist()
  776. ;    2       LangExt()
  777. ;    1       AnsiOn()
  778. ;    4       GetX()
  779. ;    4       GetY()
  780. ;    1       GrafMode()
  781. ;    7       FileInf()
  782. ;    3       PPEName()
  783. ;    5       ScrText()
  784. ;    4       FlagCnt()
  785. ;
  786. ;------------------------------------------------------------------------------
  787. ;
  788. ; Analysis flags : Sd
  789. ;
  790. ; S - Shell to DOS ■ 5
  791. ;     This may be normal if the PPE need to execute an external command,
  792. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  793. ;     or usefull (sorting, maintenance,...). Check!
  794. ;     ■ Search for : SHELL
  795. ;
  796. ; d - Access PCBOARD.DAT ■ 2
  797. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  798. ;     for many PPE so they can find various informations on the system
  799. ;     (system paths, max number of lines in messages, ...) but it may also
  800. ;     be a way to gather vital informations.
  801. ;     ■ Search for : PCBDAT()
  802. ;
  803. ;------------------------------------------------------------------------------
  804. ;
  805. ; Postprocessing report
  806. ;
  807. ;    9       For/Next
  808. ;    2       While/EndWhile
  809. ;    36      If/Then or If/Then/Else
  810. ;    1       Select Case
  811. ;
  812. ;------------------------------------------------------------------------------
  813. ;                 AEGiS Corp - Break the routines, code against the machines!
  814. ;------------------------------------------------------------------------------
  815.